home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 35 / Amiga Format AFCD35 (Issue 119, Jan 1999).iso / -in_the_mag- / reader_requests / fredobbutils / bbsrc / bootintro.s < prev    next >
Text File  |  1998-11-06  |  4KB  |  194 lines

  1. *** Code d'un bootblock installé par BOOTINTRO 1.0 (de Roger Fischlin)
  2.  
  3. start
  4.     lea    dosname(pc),a1
  5.     move.l    4.w,a6
  6.     jsr    -96(a6)        ;findresident()
  7.     move.l    d0,a0
  8.     move.l    22(a0),a0
  9.     moveq    #0,d0
  10.     movem.l    d0-a6,-(a7)
  11. *** allouer mémoire pour les variables, les bitplanes & la copperlist
  12.     move.l    #$2ee0,d0
  13.     move.l    #$10002,d1
  14.     move.l    4.w,a6
  15.     jsr    -198(a6)    ;allocmem()
  16.  
  17.     lea    lb_02c0(pc),a4
  18.     move.l    d0,(a4)
  19.     beq.w    lb_0248
  20.  
  21.     add.l    #1500,d0
  22.     move.l    d0,4(a4)
  23.     jsr    -$84(a6)    ;forbid()
  24.     move.l    (a4),a1
  25. *** adresse des bitplanes dans la copperlist
  26.     move    #$e0,(a1)+
  27.     move.l    4(a4),d0
  28.     swap    d0
  29.     move    d0,(a1)+
  30.     move    #$e2,(a1)+
  31.     swap    d0
  32.     move    d0,(a1)+
  33. *** construire les rasters (dégradés de couleur)
  34.     move.l    #$01800000,(a1)+    ;couleur0
  35.     move.l    #$01820fff,(a1)+    ;couleur1
  36.     moveq    #60,d0        ;ystart
  37.     moveq    #$001,d1    ;valeur rgb de départ
  38.     bsr.w    lb_0260        ;construit raster
  39.     move    #135,d0        ;ystart
  40.     move    #$111,d1    ;valeur rgb...
  41.     bsr.w    lb_0260
  42.     move    #210,d0
  43.     move    #$100,d1
  44.     bsr.w    lb_0260
  45.     move.l    #$fffffffe,(a1)+    ;fin de la liste copper
  46.     lea    $dff000,a5
  47.     move    #$03e0,$0096(a5)    ;bloquer dma
  48.     move.l    (a4),$80(a5)
  49.     clr    $88(a5)
  50.     move.l    #$298129c1,$8e(a5)
  51.     move.l    #$003800d0,$92(a5)
  52.     clr    $102(a5)
  53.     clr    $104(a5)
  54.     clr    $108(a5)
  55.     move    #$1000,$100(a5)
  56.     move    #$8380,$96(a5)        ;start dma
  57.     lea    gfxname(pc),a1
  58.     move.l    4.w,a6
  59.     jsr    -552(a6)        ;openlibrary()
  60.     move.l    d0,a6
  61.     lea    topaz.textattr(pc),a0
  62.     jsr    -72(a6)            ;openfont()
  63.     move.l    d0,8(a4)
  64.     move.l    4(a4),a3
  65.     moveq    #0,d0
  66.     lea    2610(a3),a3
  67.  
  68.     lea    titre(pc),a5
  69. lb_0114    move.l    8(a4),a2    ;struct *textfont
  70.     move.l    34(a2),a2    ;aptr tf_chardata
  71.     move.b    (a5)+,d0    ;caractère du titre en d0
  72.     beq.b    lb_016a        ;nul?
  73.     cmp.b    #$7f,d0
  74.     bls.b    lb_012e
  75.     sub.b    #$20,d0
  76. lb_012e    sub.b    #$20,d0
  77.     add.l    d0,a2
  78.     move.b    (a2),(a3)
  79.     move.b    $00c0(a2),$0050(a3)
  80.     move.b    $0180(a2),$00a0(a3)
  81.     move.b    $0240(a2),$00f0(a3)
  82.     move.b    $0300(a2),$0140(a3)
  83.     move.b    $03c0(a2),$0190(a3)
  84.     move.b    $0480(a2),$01e0(a3)
  85.     move.b    $0540(a2),$0230(a3)
  86.     addq.l    #1,a3
  87.     bra.b    lb_0114
  88.  
  89. *** boucle principale: scrolling
  90.  
  91. lb_016a    lea    scrolltext(pc),a5
  92.     moveq    #0,d5
  93. mainloop
  94. lb_0170
  95.     moveq    #7,d4
  96.     and.l    d4,d5
  97.     bne.b    lb_01aa
  98.     move.l    8(a4),a2    ;textfont
  99.     move.l    34(a2),a2    ;tf_chardata
  100.     lea    1344(a2),a2
  101.     moveq    #0,d0
  102. lb_018a    move.b    (a5)+,d0
  103.     bne.b    lb_0198
  104.     lea    scrolltext(pc),a5
  105.     bra.b    lb_018a
  106. lb_0198
  107.     cmp.b    #$7f,d0
  108.     bls.b    lb_01a4
  109.     sub.b    #$20,d0
  110. lb_01a4
  111.     sub.b    #$20,d0
  112.     add.l    d0,a2
  113. lb_01aa    or.b    #8,d5
  114.     move.l    4(a4),a0
  115.     lea    $1888(a0),a0
  116.     moveq    #$07,d1
  117.     move.l    a2,a1
  118. *** attendre le prochain vertblank
  119. lb_01c0
  120.     move.w    $dff006,d0    ;vposr (position verticale du faisceau)
  121.     lsr    #8,d0
  122.     cmp    #80,d0
  123.     bhi.b    lb_01c0
  124. lb_01ce    moveq    #20-1,d0    ;hauteur du caractère
  125.     moveq    #0,d2
  126.     move.b    (a1),d2
  127.     roxl    #1,d2
  128.     roxl    d5,d2
  129.     lea    -192(a1),a1
  130. lb_01e2    roxl    -(a0)
  131.     dbf    d0,lb_01e2
  132.     lea    -40(a0),a0
  133.     dbf    d1,lb_01ce
  134.     move.l    #3584,d0
  135. lb_01f8    dbf    d0,lb_01f8
  136.     addq    #1,d5
  137.  
  138.     btst    #$06,$00bfe001
  139.     bne.b    mainloop
  140. *** ouvrir gfxlib & restaurer liste copper
  141.     lea    gfxname(pc),a1
  142.     move.l    4.w,a6
  143.     jsr    -552(a6)    ;openlibrary()
  144.     move.l    d0,a0
  145.     lea    $00dff000,a5
  146.     move.l    38(a0),$80(a5)    ;liste copper système
  147.     clr    $88(a5)
  148.     move    #$8060,$96(a5)
  149.     move.l    (a4),a1
  150. *** libérer buffer
  151.     move.l    #$2ee0,d0
  152.     move.l    4.w,a6
  153.     jsr    -$d2(a6)    ;freemem()
  154.     jsr    -$8a(a6)    ;permit()
  155. lb_0248    movem.l    (a7)+,d0-a6
  156.     rts    
  157. lb_0260
  158.     moveq    #0,d2
  159.     moveq    #14,d3
  160.     lsl    #8,d0
  161.     or.b    #$0f,d0
  162. lb_0270    add    d1,d2
  163.     move    d0,(a1)+
  164.     move.l    #$fffe0180,(a1)+
  165.     move    d2,(a1)+
  166.     add    #$100,d0
  167.     dbf    d3,lb_0270
  168.     moveq    #14,d3
  169. lb_028a    sub    d1,d2
  170.     move    d0,(a1)+
  171.     move.l    #$fffe0180,(a1)+
  172.     move    d2,(a1)+
  173.     add    #$100,d0
  174.     dbf    d3,lb_028a
  175.     rts    
  176. lb_02c0    ds.l    4
  177. topaz.textattr
  178.     dc.l    topaz.name
  179.     dc.w    8
  180.     dc.b    0
  181.     dc.b    0
  182. topaz.name
  183.     dc.b    "topaz.font",0
  184. gfxname    dc.b    "graphics.library",0
  185. dosname    dc.b    "dos.library",0
  186.  
  187. titre
  188.  DC.B    "BootIntro V1.0",0
  189. scrolltext
  190.  dc.b    "Bonjour tout le monde ! Comment ca va??"
  191.  dc.b    "                    ",0
  192.  
  193. End:
  194.